package com.ruoyi.business.service.koc;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.business.domain.dto.admin.user.TbUserAddressPageQueryDTO;
import com.ruoyi.business.domain.dto.api.user.AddMyAddressDTO;
import com.ruoyi.business.domain.dto.api.user.EditMyAddressDTO;
import com.ruoyi.business.domain.koc.TbUserAddress;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.Collection;

/**
 * 用户收货地址Service接口
 *
 * @author ruoyi
 * @date 2025-09-25
 */
public interface ITbUserAddressService extends IService<TbUserAddress> {



    /**
     * 查询用户收货地址列表
     *
     * @return 用户收货地址集合
     */
    TableDataInfo<TbUserAddress> queryPageList(TbUserAddressPageQueryDTO dto, PageQuery pageQuery);


    /**
     * 校验并批量删除用户收货地址信息
     *
     * @param ids 需要删除的用户收货地址主键集合
     * @return 结果
     */
    Boolean deleteByIds(Collection<String> ids);


    /**
     * 查询用户收货地址列表
     *
     * @return 用户收货地址集合
     */
    TableDataInfo<TbUserAddress> queryMyAddressPageList(Long userId, PageQuery pageQuery);

    /**
     * 新增我的收获地址
     *
     * @return 结果
     */
    Boolean insertMyAddress(Long userId, AddMyAddressDTO dto);


    /**
     * 新增我的收获地址
     *
     * @return 结果
     */
    Boolean editMyAddress(Long userId, EditMyAddressDTO dto);


    /**
     * 设置默认地址
     *
     * @return 结果
     */
    Boolean setMyDefaultAddress(Long userId, Long addressId);


}
